Bläddra i källkod

Documentation: update core.ui documentation.
Fix @mixins with @mixes.

Maciej Gołaszewski 9 år sedan
förälder
incheckning
2af70949c1

+ 1 - 1
packages/ckeditor5-engine/src/collection.js

@@ -20,7 +20,7 @@ import utils from './utils.js';
  * configured through the constructor of the collection.
  *
  * @class Collection
- * @mixins EventEmitter
+ * @mixes EventEmitter
  */
 
 export default class Collection {

+ 1 - 1
packages/ckeditor5-engine/src/config.js

@@ -14,7 +14,7 @@ import utils from './utils.js';
  * Handles a configuration dictionary.
  *
  * @class core.Config
- * @mixins core.ObservableMixin
+ * @mixes core.ObservableMixin
  */
 
 export default class Config {

+ 1 - 1
packages/ckeditor5-engine/src/editable/editable.js

@@ -13,7 +13,7 @@ import ObservableMixin from '../observablemixin.js';
 /**
  * @memberOf core.editable
  * @extends core.ui.Controller
- * @mixins core.ObservableMixin
+ * @mixes core.ObservableMixin
  */
 export default class Editable extends Controller {
 	/**

+ 1 - 1
packages/ckeditor5-engine/src/editor.js

@@ -16,7 +16,7 @@ import utils from './utils.js';
  * Represents a single editor instance.
  *
  * @class core.Editor
- * @mixins core.ObservableMixin
+ * @mixes core.ObservableMixin
  */
 
 export default class Editor {

+ 1 - 1
packages/ckeditor5-engine/src/editorui.js

@@ -14,7 +14,7 @@ import ObservableMixin from './observablemixin.js';
  *
  * @class core.EditorUI
  * @extends core.ui.Controller
- * @mixins core.ObservableMixin
+ * @mixes core.ObservableMixin
  */
 
 export default class EditorUI extends Controller {

+ 2 - 4
packages/ckeditor5-engine/src/emittermixin.js

@@ -15,11 +15,9 @@ let eventsCounter = 0;
 /**
  * Mixin that injects the events API into its host.
  *
- * @singleton
- * @class core.EmitterMixin
- * @implementes core.Emitter
+ * @mixin core.EmitterMixin
+ * @implements core.Emitter
  */
-
 const EmitterMixin = {
 	/**
 	 * Registers a callback function to be executed when an event is fired.

+ 1 - 1
packages/ckeditor5-engine/src/observablemixin.js

@@ -20,7 +20,7 @@ const boundAttributesSymbol = Symbol( 'boundAttributes' );
  *
  * @singleton
  * @class core.ObservableMixin
- * @mixins EmitterMixin
+ * @mixes core.EmitterMixin
  * @implements core.Observable
  */
 

+ 1 - 1
packages/ckeditor5-engine/src/plugin.js

@@ -12,7 +12,7 @@ import utils from './utils.js';
  * The base class for CKEditor plugin classes.
  *
  * @class core.Plugin
- * @mixins core.ObservableMixin
+ * @mixes core.ObservableMixin
  */
 
 export default class Plugin {

+ 7 - 18
packages/ckeditor5-engine/src/treeview/converter.js

@@ -9,10 +9,6 @@ import ViewText from './text.js';
 import ViewElement from './element.js';
 
 /**
- * Creates converter.
- *
- * @class core.treeView.Converter
- * @classdesc
  * Converter is a set of tools to do transformations between DOM nodes and view nodes. It also handles
  * {@link core.treeView.Converter#bindElements binding} these nodes.
  *
@@ -21,8 +17,13 @@ import ViewElement from './element.js';
  *
  * Converter keeps DOM elements to View element bindings, so when the converter will be destroyed, the binding will be
  * lost. Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.
+ *
+ * @memberOf core.treeView
  */
 export default class Converter {
+	/**
+	 * Creates converter.
+	 */
 	constructor() {
 		// Using WeakMap prevent memory leaks: when the converter will be destroyed all referenced between View and DOM
 		// will be removed. Also because it is a *Weak*Map when both view and DOM elements will be removed referenced
@@ -35,18 +36,16 @@ export default class Converter {
 		/**
 		 * DOM to View mapping.
 		 *
-		 * @member core.treeView.Converter#_domToViewMapping
 		 * @private
-		 * @type {WeakMap}
+		 * @member {WeakMap} core.treeView.Converter#_domToViewMapping
 		 */
 		this._domToViewMapping = new WeakMap();
 
 		/**
 		 * View to DOM mapping.
 		 *
-		 * @member core.treeView.Converter#_viewToDomMapping
 		 * @private
-		 * @type {WeakMap}
+		 * @member {WeakMap} core.treeView.Converter#_viewToDomMapping
 		 */
 		this._viewToDomMapping = new WeakMap();
 	}
@@ -55,7 +54,6 @@ export default class Converter {
 	 * Binds DOM and View elements, so it will be possible to get corresponding elements using
 	 * {@link core.treeView.Converter#getCorrespondingViewElement} and {@link core.treeView.Converter#getCorespondingDOMElement}.
 	 *
-	 * @method core.treeView.Converter#bindElements
 	 * @param {HTMLElement} domElement DOM element to bind.
 	 * @param {core.treeView.Element} viewElement View element to bind.
 	 */
@@ -68,7 +66,6 @@ export default class Converter {
 	 * Compares DOM and View nodes. Elements are same when they are bound. Text nodes are same when they have the same
 	 * text data. Nodes need to have corresponding types. In all other cases nodes are different.
 	 *
-	 * @method core.treeView.Converter#compareNodes
 	 * @param {Node} domNode DOM node to compare.
 	 * @param {core.treeView.Node} viewNode View node to compare.
 	 * @returns {Boolean} True if nodes are same.
@@ -91,7 +88,6 @@ export default class Converter {
 	 * Converts view to DOM. For all text nodes and not bound elements new elements will be created. For bound
 	 * elements function will return corresponding elements.
 	 *
-	 * @method core.treeView.Converter#viewToDom
 	 * @param {core.treeView.Node} viewNode View node to transform.
 	 * @param {document} domDocument Document which will be used to create DOM nodes.
 	 * @param {Object} [options] Conversion options.
@@ -135,7 +131,6 @@ export default class Converter {
 	 * Converts DOM to view. For all text nodes and not bound elements new elements will be created. For bound
 	 * elements function will return corresponding elements.
 	 *
-	 * @method core.treeView.Converter#domToView
 	 * @param {Node} domNode DOM node to transform.
 	 * @param {Object} [options] Conversion options.
 	 * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.
@@ -182,7 +177,6 @@ export default class Converter {
 	 * Gets corresponding view node. This function use {@link core.treeView.Converter#getCorrespondingViewElement} for elements and
 	 * {@link getCorrespondingViewText} for text nodes.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingView
 	 * @param {Node} domNode DOM node.
 	 * @returns {core.treeView.Node|null} Corresponding node.
 	 */
@@ -198,7 +192,6 @@ export default class Converter {
 	 * Gets corresponding view element. Returns element if an view element was {@link core.treeView.Converter#bindElements bound} to the given
 	 * DOM element or null otherwise.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingViewElement
 	 * @param {HTMLElement} domElement DOM element.
 	 * @returns {core.treeView.Element|null} Corresponding element or null if none element was bound.
 	 */
@@ -218,7 +211,6 @@ export default class Converter {
 	 *
 	 * Otherwise `null` is returned.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingViewText
 	 * @param {Text} domText DOM text node.
 	 * @returns {core.treeView.Text|null} Corresponding view text node or null, if it was not possible to find a
 	 * corresponding node.
@@ -255,7 +247,6 @@ export default class Converter {
 	 * Gets corresponding DOM node. This function uses {@link core.treeView.Converter#getCorrespondingDomElement} for elements and
 	 * {@link core.treeView.Converter#getCorrespondingDomText} for text nodes.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingDom
 	 * @param {core.treeView.Node} viewNode View node.
 	 * @returns {Node|null} Corresponding DOM node.
 	 */
@@ -271,7 +262,6 @@ export default class Converter {
 	 * Gets corresponding DOM element. Returns element if an DOM element was {@link core.treeView.Converter#bindElements bound} to the given
 	 * view element or null otherwise.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingDomElement
 	 * @param {core.treeView.Element} viewElement View element.
 	 * @returns {HTMLElement|null} Corresponding element or null if none element was bound.
 	 */
@@ -291,7 +281,6 @@ export default class Converter {
 	 *
 	 * Otherwise null is returned.
 	 *
-	 * @method core.treeView.Converter#getCorrespondingDomText
 	 * @param {core.treeView.Text} viewText View text node.
 	 * @returns {Text|null} Corresponding DOM text node or null, if it was not possible to find a corresponding node.
 	 */

+ 19 - 31
packages/ckeditor5-engine/src/treeview/element.js

@@ -10,40 +10,41 @@ import utils from '../utils.js';
 import isPlainObject from '../lib/lodash/isPlainObject.js';
 
 /**
- * Creates a tree view element.
+ * Tree view element.
  *
- * Attributes can be passes in various formats:
- *
- *        new Element( 'div', { 'class': 'editor', 'contentEditable': 'true' } ); // object
- *        new Element( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator
- *        new Element( 'div', mapOfAttributes ); // map
- *
- * @param {String} name Node name.
- * @param {Object|Iterable} [attrs] Collection of attributes.
- * @param {core.treeView.Node|Iterable.<core.treeView.Node>} [children] List of nodes to be inserted into created element.
- *
- * @class core.treeView.Element
- * @classdesc Tree view element.
+ * @memberOf core.treeView
+ * @extends core.treeView.Node
  */
 export default class Element extends Node {
+	/**
+	 * Creates a tree view element.
+	 *
+	 * Attributes can be passes in various formats:
+	 *
+	 *        new Element( 'div', { 'class': 'editor', 'contentEditable': 'true' } ); // object
+	 *        new Element( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator
+	 *        new Element( 'div', mapOfAttributes ); // map
+	 *
+	 * @param {String} name Node name.
+	 * @param {Object|Iterable} [attrs] Collection of attributes.
+	 * @param {core.treeView.Node|Iterable.<core.treeView.Node>} [children] List of nodes to be inserted into created element.
+	 */
 	constructor( name, attrs, children ) {
 		super();
 
 		/**
 		 * Name of the element.
 		 *
-		 * @member core.treeView.Element#name
 		 * @readonly
-		 * @type {String}
+		 * @member {String} core.treeView.Element#name
 		 */
 		this.name = name;
 
 		/**
 		 * Map of attributes, where attributes names are keys and attributes values are values.
 		 *
-		 * @member core.treeView.Element#_attrs
 		 * @protected
-		 * @type {Map}
+		 * @member {Map} core.treeView.Element#_attrs
 		 */
 		if ( isPlainObject( attrs ) ) {
 			this._attrs = utils.objectToMap( attrs );
@@ -54,9 +55,8 @@ export default class Element extends Node {
 		/**
 		 * Array of child nodes.
 		 *
-		 * @member core.treeView.Element#_children
 		 * @protected
-		 * @type {Array.<core.treeView.Node>}
+		 * @member {Array.<core.treeView.Node>} core.treeView.Element#_children
 		 */
 		this._children = [];
 
@@ -69,7 +69,6 @@ export default class Element extends Node {
 	 * {@link core.treeView.Element#insert Insert} a child node or a list of child nodes at the end of this node and sets
 	 * the parent of these nodes to this element.
 	 *
-	 * @method core.treeView.Element#appendChildren
 	 * @param {core.treeView.Node|Iterable.<core.treeView.Node>} nodes Node or the list of nodes to be inserted.
 	 * @fires {@link core.treeView.Node#change change event}
 	 */
@@ -80,7 +79,6 @@ export default class Element extends Node {
 	/**
 	 * Gets child at the given index.
 	 *
-	 * @method core.treeView.Element#getChild
 	 * @param {Number} index Index of child.
 	 * @returns {treeView.Node} Child node.
 	 */
@@ -91,7 +89,6 @@ export default class Element extends Node {
 	/**
 	 * Gets the number of element's children.
 	 *
-	 * @method core.treeView.Element#getChildCount
 	 * @returns {Number} The number of element's children.
 	 */
 	getChildCount() {
@@ -101,7 +98,6 @@ export default class Element extends Node {
 	/**
 	 * Gets index of the given child node.
 	 *
-	 * @method core.treeView.Element#getChildIndex
 	 * @param {core.treeView.Node} node Child node.
 	 * @returns {Number} Index of the child node.
 	 */
@@ -112,7 +108,6 @@ export default class Element extends Node {
 	/**
 	 * Gets child nodes iterator.
 	 *
-	 * @method core.treeView.Element#getChildren
 	 * @returns {Iterable.<core.treeView.Node>} Child nodes iterator.
 	 */
 	getChildren() {
@@ -122,7 +117,6 @@ export default class Element extends Node {
 	/**
 	 * Returns an iterator that contains the keys for attributes.
 	 *
-	 * @method core.treeView.Element#getAttributeKeys
 	 * @returns {Iterator.<String>} Keys for attributes.
 	 */
 	getAttributeKeys() {
@@ -132,7 +126,6 @@ export default class Element extends Node {
 	/**
 	 * Gets attribute by key.
 	 *
-	 * @method core.treeView.Element#getAttribute
 	 * @param {String} key Attribute key.
 	 * @returns {String} Attribute value.
 	 */
@@ -143,7 +136,6 @@ export default class Element extends Node {
 	/**
 	 * Returns a boolean indicating whether an attribute with the specified key exists in the element.
 	 *
-	 * @method core.treeView.Element#hasAttribute
 	 * @param {String} key Attribute key.
 	 * @returns {Boolean} `true` if attribute with the specified key exists in the element, false otherwise.
 	 */
@@ -155,7 +147,6 @@ export default class Element extends Node {
 	 * Adds or overwrite attribute with a specified key and value.
 	 *
 	 *
-	 * @method core.treeView.Element#setAttribute
 	 * @param {String} key Attribute key.
 	 * @param {String} value Attribute value.
 	 * @fires {@link core.treeView.Node#change change event}
@@ -171,7 +162,6 @@ export default class Element extends Node {
 	 * this element.
 	 *
 	 *
-	 * @method core.treeView.Element#insertChildren
 	 * @param {Number} index Position where nodes should be inserted.
 	 * @param {core.treeView.Node|Iterable.<core.treeView.Node>} nodes Node or the list of nodes to be inserted.
 	 * @fires {@link core.treeView.Node#change change event}.
@@ -194,7 +184,6 @@ export default class Element extends Node {
 	/**
 	 * Removes attribute from the element.
 	 *
-	 * @method core.treeView.Element#removeAttribute
 	 * @param {String} key Attribute key.
 	 * @returns {Boolean} Returns true if an attribute existed and has been removed.
 	 * @fires {@link core.treeView.Node#change change event}
@@ -209,7 +198,6 @@ export default class Element extends Node {
 	 * Removes number of child nodes starting at the given index and set the parent of these nodes to `null`.
 	 *
 	 *
-	 * @method core.treeView.Element#removeChildren
 	 * @param {Number} index Number of the first node to remove.
 	 * @param {Number} number Number of nodes to remove.
 	 * @returns {Array.<core.treeView.Node>} The array of removed nodes.

+ 17 - 21
packages/ckeditor5-engine/src/treeview/node.js

@@ -10,29 +10,31 @@ import EmitterMixin from '../emittermixin.js';
 import utils from '../utils.js';
 
 /**
- * Creates a tree view node.
- *
- * This is an abstract class, so this constructor should not be used directly.
+ * Abstract tree view node class.
  *
  * @abstract
- * @class core.treeView.Node
- * @classdesc Abstract tree view node class.
+ * @memberOf core.treeView
  */
 export default class Node {
+	/**
+	 * Creates a tree view node.
+	 *
+	 * This is an abstract class, so this constructor should not be used directly.
+	 */
 	constructor() {
 		/**
-		 * Parent element. Null by default. Set by {@link treeView.Element#insertChildren}.
+		 * Parent element. Null by default. Set by {@link core.treeView.Element#insertChildren}.
 		 *
 		 * @readonly
-		 * @type {treeView.Element|null}
+		 * @member {treeView.Element|null} core.treeView.Node
 		 */
 		this.parent = null;
 
 		/**
-		 * {@link treeView.TreeView} reference.
+		 * {@link core.treeView.TreeView} reference.
 		 *
 		 * @protected
-		 * @type {treeView.TreeView}
+		 * @member {treeView.TreeView} core.treeView.Node
 		 */
 		this._treeView = null;
 	}
@@ -42,7 +44,6 @@ export default class Node {
 	 *
 	 * Throws error if the parent element does not contain this node.
 	 *
-	 * @method core.treeView.Node#getIndex
 	 * @returns {Number|null} Index of the node in the parent element or null if the node has not parent.
 	 */
 	getIndex() {
@@ -68,7 +69,6 @@ export default class Node {
 	/**
 	 * Returns nodes next sibling or `null` if it is the last child.
 	 *
-	 * @method core.treeView.Node#getNextSibling
 	 * @returns {treeView.Node|null} Nodes next sibling or `null` if it is the last child.
 	 */
 	getNextSibling() {
@@ -80,7 +80,6 @@ export default class Node {
 	/**
 	 * Returns nodes previous sibling or `null` if it is the first child.
 	 *
-	 * @method core.treeView.Node#getPreviousSibling
 	 * @returns {treeView.Node|null} Nodes previous sibling or `null` if it is the first child.
 	 */
 	getPreviousSibling() {
@@ -90,11 +89,10 @@ export default class Node {
 	}
 
 	/**
-	 * Gets {@link treeView.TreeView} reference. If the node has {@link treeView.TreeView}, assign by
-	 * {@link treeView.Node#setTreeView} it will be returned. Otherwise {@link treeView.TreeView} of the parents node
+	 * Gets {@link core.treeView.TreeView} reference. If the node has {@link core.treeView.TreeView}, assign by
+	 * {@link core.treeView.Node#setTreeView} it will be returned. Otherwise {@link core.treeView.TreeView} of the parents node
 	 * will be returned. If node has no parent, `null` will be returned.
 	 *
-	 * @method core.treeView.Node#getTreeView
 	 * @returns {treeView.TreeView|null} Tree view of the node, tree view of the parent or null.
 	 */
 	getTreeView() {
@@ -108,10 +106,9 @@ export default class Node {
 	}
 
 	/**
-	 * Sets the {@link treeView.TreeView} of the node. Note that not all of nodes need to have {@link treeView.TreeView}
-	 * assigned, see {@link treeView.Node#getTreeView}.
+	 * Sets the {@link core.treeView.TreeView} of the node. Note that not all of nodes need to have {@link core.treeView.TreeView}
+	 * assigned, see {@link core.treeView.Node#getTreeView}.
 	 *
-	 * @method core.treeView.Node#setTreeView
 	 * @param {treeView.TreeView} treeView Tree view.
 	 */
 	setTreeView( treeView ) {
@@ -119,7 +116,6 @@ export default class Node {
 	}
 
 	/**
-	 * @method core.treeView.Node#_fireChange
 	 * @param {treeView.ChangeType} type Type of the change.
 	 * @param {treeView.Node} node Changed node.
 	 * @fires {@link core.treeView.Node#change change event}.
@@ -135,8 +131,8 @@ export default class Node {
 	/**
 	 * Fired when a node changes.
 	 *
-	 * * In case of {@link treeView.Text text nodes} it will be a change of the text data.
-	 * * In case of {@link treeView.Element elements} it will be a change of child nodes or attributes.
+	 * * In case of {@link core.treeView.Text text nodes} it will be a change of the text data.
+	 * * In case of {@link core.treeView.Element elements} it will be a change of child nodes or attributes.
 	 *
 	 * Change event is bubbling, it is fired on the ancestors chain.
 	 *

+ 21 - 19
packages/ckeditor5-engine/src/treeview/observer/mutationobserver.js

@@ -8,11 +8,6 @@
 import Observer from './observer.js';
 
 /**
- * Mutation observer constructor. Note that most of the initialization is done in
- * {@link core.treeView.observer.MutationObserver#init} method.
- *
- * @class core.treeView.observer.MutationObserver
- * @classdesc
  * Mutation observer class observes changes in the DOM, fires {@link core.treeView.TreeView#mutations} event, mark view elements
  * as changed and call {@link core.treeView.render}. Because all mutated nodes are marked as "to be rendered" and the
  * {@link core.treeView.render} is called, all changes will be reverted, unless the mutation will be handled by the
@@ -22,9 +17,15 @@ import Observer from './observer.js';
  * Mutation Observer also take care of reducing number of mutations which are fired. It removes duplicates and
  * mutations on elements which do not have corresponding view elements. Also
  * {@link core.treeView.TreeView.MutatatedText text mutation} is fired only if parent element do not change child list.
+ *
+ * @memberOf core.treeView.observer
  * @extends core.treeView.observer.Observer
  */
 export default class MutationObserver extends Observer {
+	/**
+	 * Mutation observer constructor. Note that most of the initialization is done in
+	 * {@link core.treeView.observer.MutationObserver#init} method.
+	 */
 	constructor() {
 		super();
 
@@ -32,7 +33,7 @@ export default class MutationObserver extends Observer {
 		 * Native mutation observer config.
 		 *
 		 * @private
-		 * @type {Object}
+		 * @member {Object} core.treeView.observer.MutationObserver#_config
 		 */
 		this._config = {
 			childList: true,
@@ -42,56 +43,57 @@ export default class MutationObserver extends Observer {
 		};
 	}
 
-	// Docs in the base class.
+	/**
+	 * @inheritDoc
+	 */
 	init( treeView ) {
 		/**
 		 * Reference to the {@link core.treeView.TreeView} object.
 		 *
-		 * @member core.treeView.observer.MutationObserver#treeView
-		 * @type {core.treeView.TreeView}
+		 * @member {core.treeView.TreeView} core.treeView.observer.MutationObserver#treeView
 		 */
 		this.treeView = treeView;
 
 		/**
 		 * Reference to the {@link core.treeView.TreeView#domRoot}.
 		 *
-		 * @member core.treeView.observer.MutationObserver#domRoot
-		 * @type {HTMLElement}
+		 * @member {HTMLElement} core.treeView.observer.MutationObserver#domRoot
 		 */
 		this.domRoot = treeView.domRoot;
 
 		/**
 		 * Reference to the {@link core.treeView.TreeView#converter}.
 		 *
-		 * @member core.treeView.observer.MutationObserver#converter
-		 * @type {core.treeView.Converter}
+		 * @member {core.treeView.Converter} core.treeView.observer.MutationObserver#converter
 		 */
 		this.converter = treeView.converter;
 
 		/**
 		 * Reference to the {@link core.treeView.TreeView#renderer}.
 		 *
-		 * @member core.treeView.observer.MutationObserver#renderer
-		 * @type {core.treeView.Renderer}
+		 * @member {core.treeView.Renderer} core.treeView.observer.MutationObserver#renderer
 		 */
 		this.renderer = treeView.renderer;
 
 		/**
 		 * Native mutation observer.
 		 *
-		 * @member core.treeView.observer.MutationObserver#_mutationObserver
 		 * @private
-		 * @type {window.MutationObserver}
+		 * @member {window.MutationObserver} core.treeView.observer.MutationObserver#_mutationObserver
 		 */
 		this._mutationObserver = new window.MutationObserver( this._onMutations.bind( this ) );
 	}
 
-	// Docs in the base class.
+	/**
+	 * @inheritDoc
+	 */
 	attach() {
 		this._mutationObserver.observe( this.domRoot, this._config );
 	}
 
-	// Docs in the base class.
+	/**
+	 * @inheritDoc
+	 */
 	detach() {
 		this._mutationObserver.disconnect();
 	}

+ 2 - 3
packages/ckeditor5-engine/src/treeview/observer/observer.js

@@ -6,11 +6,10 @@
 'use strict';
 
 /**
- * @abstract
- * @class core.treeView.observer.Observer
- * @classdesc
  * Abstract base observer class. Observers are classes which observe changes on DOM elements, do the preliminary
  * processing and fire events on the {@link core.treeView.TreeView} objects.
+ * @abstract
+ * @memberOf core.treeView.observer
  */
 export default class Observer {
 	/**

+ 8 - 7
packages/ckeditor5-engine/src/treeview/position.js

@@ -5,16 +5,17 @@
 
 'use strict';
 
-/**
- * Creates a position.
- *
- * @param {core.treeView.Element} parent Position parent element.
- * @param {Number} offset Position offset.
+/**Position in the tree. Position is always located before or after a node.
  *
- * @class core.treeView.Position
- * @classdesc Position in the tree. Position is always located before or after a node.
+ * @memberOf core.treeView
  */
 export default class Position {
+	/**
+	 * Creates a position.
+	 *
+	 * @param {core.treeView.Element} parent Position parent element.
+	 * @param {Number} offset Position offset.
+	 */
 	constructor( parent, offset ) {
 		/**
 		 * Position parent element.

+ 11 - 17
packages/ckeditor5-engine/src/treeview/renderer.js

@@ -9,53 +9,50 @@ import diff from '../utils-diff.js';
 import CKEditorError from '../ckeditorerror.js';
 
 /**
- * Creates a renderer instance.
- *
- * @param {core.treeView.Converter} converter Converter instance.
- *
- * @class core.treeView.Renderer
- * @classdesc
  * Renderer updates DOM tree, to make it a reflection of the view tree. Changed nodes need to be
  * {@link core.treeView.Renderer#markToSync marked} to be rendered. Then, on {@link core.treeView.Renderer#render render}, renderer
  * ensure they need to be refreshed and creates DOM nodes from view nodes,
  * {@link core.treeView.Converter#bindElements bind} them and insert into DOM tree. Renderer use {@link core.treeView.Converter}
  * to transform and bind nodes.
+ *
+ * @memberOf core.treeView
  */
 export default class Renderer {
+	/**
+	 * Creates a renderer instance.
+	 *
+	 * @param {core.treeView.Converter} converter Converter instance.
+	 */
 	constructor( converter ) {
 		/**
 		 * Converter instance.
 		 *
-		 * @member core.treeView.Renderer#converter
 		 * @readonly
-		 * @type {core.treeView.Converter}
+		 * @member {core.treeView.Converter} core.treeView.Renderer#converter
 		 */
 		this.converter = converter;
 
 		/**
 		 * Set of nodes which attributes changed and may need to be rendered.
 		 *
-		 * @member core.treeView.Renderer#markedAttributes
 		 * @readonly
-		 * @type {Set.<core.treeView.Node>}
+		 * @member {Set.<core.treeView.Node>} core.treeView.Renderer#markedAttributes
 		 */
 		this.markedAttributes = new Set();
 
 		/**
 		 * Set of elements which child lists changed and may need to be rendered.
 		 *
-		 * @member core.treeView.Renderer#markedChildren
 		 * @readonly
-		 * @type {Set.<core.treeView.Node>}
+		 * @member {Set.<core.treeView.Node>} core.treeView.Renderer#markedChildren
 		 */
 		this.markedChildren = new Set();
 
 		/**
 		 * Set of text nodes which text data changed and may need to be rendered.
 		 *
-		 * @member core.treeView.Renderer#markedTexts
 		 * @readonly
-		 * @type {Set.<core.treeView.Node>}
+		 * @member {Set.<core.treeView.Node>} core.treeView.Renderer#markedTexts
 		 */
 		this.markedTexts = new Set();
 	}
@@ -69,7 +66,6 @@ export default class Renderer {
 	 * @see core.treeView.Renderer#markedChildren
 	 * @see core.treeView.Renderer#markedTexts
 	 *
-	 * @method core.treeView.Renderer#markToSync
 	 * @param {core.treeView.ChangeType} type Type of the change.
 	 * @param {core.treeView.Node} node Node to be marked.
 	 */
@@ -117,8 +113,6 @@ export default class Renderer {
 	 *
 	 * For nodes which changed child list it calculates a {@link diff} using {@link core.treeView.Converter#compareNodes}
 	 * and add or removed nodes which changed.
-	 *
-	 * @method core.treeView.Renderer#render
 	 */
 	render() {
 		const converter = this.converter;

+ 9 - 7
packages/ckeditor5-engine/src/treeview/text.js

@@ -8,14 +8,17 @@
 import Node from './node.js';
 
 /**
- * Creates a tree view text node.
+ * Tree view text node.
  *
- * @param {String} data Text.
- *
- * @class core.treeView.Text
- * @classdesc Tree view text node.
+ * @memberOf core.treeView
+ * @extends core.treeView.Node
  */
 export default class Text extends Node {
+	/**
+	 * Creates a tree view text node.
+	 *
+	 * @param {String} data Text.
+	 */
 	constructor( data ) {
 		super();
 
@@ -25,8 +28,7 @@ export default class Text extends Node {
 		 * Setting the data fires the {@link core.treeView.Node#event:change change event}.
 		 *
 		 * @private
-		 * @type {String}
-		 * @member core.treeView.Text#_data
+		 * @member {String} core.treeView.Text#_data
 		 */
 		this._data = data;
 	}

+ 16 - 20
packages/ckeditor5-engine/src/treeview/treeview.js

@@ -12,39 +12,38 @@ import Converter from './converter.js';
 import utils from '../utils.js';
 
 /**
- * Creates a TreeView based on the HTMLElement.
- *
- * The constructor copies the element name and attributes to create the
- * root of the view, but does not copy its children. This means that the while rendering, the whole content of this
- * root element will be removed when you call {@link core.treeView.TreeView#render render} but the root name and attributes will
- * be preserved.
- *
- * @param {HTMLElement} domRoot DOM element in which the tree view should do change.
- * @class core.treeView.TreeView
- * @classdesc
  * TreeView class combines the actual tree of view elements, tree of DOM elements, {@link core.treeView.Converter converter},
  * {@link core.treeView.Renderer renderer} and all {@link core.treeView.Observer observers}. It creates an abstract layer over the
  * content editable area.
  *
  * If you want to only transform the tree of view elements to the DOM elements you can use the {@link core.treeView.Converter Converter}.
  *
+ * @memberOf core.treeView
  * @mixes core.EmitterMixin
  */
 export default class TreeView {
+	/**
+	 * Creates a TreeView based on the HTMLElement.
+	 *
+	 * The constructor copies the element name and attributes to create the
+	 * root of the view, but does not copy its children. This means that the while rendering, the whole content of this
+	 * root element will be removed when you call {@link core.treeView.TreeView#render render} but the root name and attributes will
+	 * be preserved.
+	 *
+	 * @param {HTMLElement} domRoot DOM element in which the tree view should do change.
+	 */
 	constructor( domRoot ) {
 		/**
 		 * Root of the DOM tree.
 		 *
-		 * @member core.treeView.TreeView#domRoot
-		 * @type {HTMLElement}
+		 * @member {HTMLElement} core.treeView.TreeView#domRoot
 		 */
 		this.domRoot = domRoot;
 
 		/**
 		 * Set of {@link core.treeView.Observer observers}.
 		 *
-		 * @member core.treeView.TreeView#observers
-		 * @type {Set.<core.treeView.Observer>}
+		 * @member {Set.<core.treeView.Observer>} core.treeView.TreeView#observers
 		 */
 		this.observers = new Set();
 
@@ -52,16 +51,14 @@ export default class TreeView {
 		 * Instance of the {@link core.treeView.Converter converter} use by {@link core.treeView.TreeView#renderer renderer} and
 		 * {@link core.treeView.TreeView#observers observers}.
 		 *
-		 * @member core.treeView.TreeView#converter
-		 * @type {core.treeView.Converter}
+		 * @member {core.treeView.Converter} core.treeView.TreeView#converter
 		 */
 		this.converter = new Converter();
 
 		/**
 		 * Root of the view tree.
 		 *
-		 * @member core.treeView.TreeView#viewRoot
-		 * @type {core.treeView.Element}
+		 * @member {core.treeView.Element} core.treeView.TreeView#viewRoot
 		 */
 		this.viewRoot = this.converter.domToView( domRoot, { bind: true, withChildren: false } );
 		this.viewRoot.setTreeView( this );
@@ -69,8 +66,7 @@ export default class TreeView {
 		/**
 		 * Instance of the {@link core.treeView.TreeView#renderer renderer}.
 		 *
-		 * @member core.treeView.TreeView#renderer
-		 * @type {core.treeView.Renderer}
+		 * @member {core.treeView.Renderer} core.treeView.TreeView#renderer
 		 */
 		this.renderer = new Renderer( this.converter );
 		this.renderer.markToSync( 'CHILDREN', this.viewRoot );

+ 9 - 10
packages/ckeditor5-engine/src/ui/controller.js

@@ -13,37 +13,36 @@ import utils from '../utils.js';
 /**
  * Basic Controller class.
  *
- * @class core.ui.Controller
- * @mixins EmitterMixin
+ * @memberOf core.ui
+ * @mixes core.EmitterMixin
  */
 
 export default class Controller {
 	/**
-	 * Creates an instance of the {@link Controller} class.
+	 * Creates an instance of the {@link core.ui.Controller} class.
 	 *
-	 * @param {Model} [model] Model of this Controller.
-	 * @param {View} [view] View instance of this Controller.
-	 * @constructor
+	 * @param {core.ui.Model} [model] Model of this Controller.
+	 * @param {core.ui.View} [view] View instance of this Controller.
 	 */
 	constructor( model, view ) {
 		/**
 		 * Model of this controller.
 		 *
-		 * @type {Model}
+		 * @member {core.ui.Model} core.ui.Controller#model
 		 */
 		this.model = model || null;
 
 		/**
 		 * Set `true` after {@link #init}.
 		 *
-		 * @type {Boolean}
+		 * @member {Boolean} core.ui.Controller#ready
 		 */
 		this.ready = false;
 
 		/**
 		 * View of this controller.
 		 *
-		 * @type {View}
+		 * @member {core.ui.View} core.ui.Controller#view
 		 */
 		this.view = view || null;
 
@@ -51,7 +50,7 @@ export default class Controller {
 		 * A collection of {@link ControllerCollection} instances containing
 		 * child controllers.
 		 *
-		 * @type {Collection}
+		 * @member {core.Collection} core.ui.Controller#collections
 		 */
 		this.collections = new Collection( {
 			idProperty: 'name'

+ 2 - 4
packages/ckeditor5-engine/src/ui/controllercollection.js

@@ -17,8 +17,6 @@ import CKEditorError from '../ckeditorerror.js';
 export default class ControllerCollection extends Collection {
 	/**
 	 * Creates an instance of the ControllerCollection class, initializing it with a name.
-	 *
-	 * @constructor
 	 */
 	constructor( name ) {
 		super();
@@ -42,7 +40,7 @@ export default class ControllerCollection extends Collection {
 		/**
 		 * Parent controller of this collection.
 		 *
-		 * @type {Controller}
+		 * @type {core.ui.Controller}
 		 */
 		this.parent = null;
 	}
@@ -51,7 +49,7 @@ export default class ControllerCollection extends Collection {
 	 * Adds a child controller to the collection. If {@link #parent} {@link Controller}
 	 * instance is ready, the child view is initialized when added.
 	 *
-	 * @param {Controller} controller A child controller.
+	 * @param {core.ui.Controller} controller A child controller.
 	 * @param {Number} [index] Index at which the child will be added to the collection.
 	 * @returns {Promise} A Promise resolved when the child {@link Controller#init} is done.
 	 */

+ 40 - 32
packages/ckeditor5-engine/src/ui/domemittermixin.js

@@ -14,11 +14,10 @@ import log from '../log.js';
  * Creates a ProxyEmitter instance. Such an instance is a bridge between a DOM Node firing events
  * and any Host listening to them. It is backwards compatible with {@link EmitterMixin#on}.
  *
- * @class DOMEmitterMixin
- * @mixins EmitterMixin
- * @implements DOMEmitter
+ * @memberOf core.ui
+ * @mixes core.EmitterMixin
+ * @implements core.ui.DOMEmitter
  */
-
 class ProxyEmitter {
 	/**
 	 * @param {Node} node DOM Node that fires events.
@@ -38,7 +37,7 @@ extend( ProxyEmitter.prototype, EmitterMixin, {
 	 * Collection of native DOM listeners.
 	 *
 	 * @private
-	 * @type {Object}
+	 * @member {Object} core.ui.ProxyEmitter#_domListeners
 	 */
 
 	/**
@@ -53,6 +52,8 @@ extend( ProxyEmitter.prototype, EmitterMixin, {
 	 * event.
 	 * @param {Number} [priority=10] The priority of this callback in relation to other callbacks to that same event.
 	 * Lower values are called first.
+	 *
+	 * @method core.ui.ProxyEmitter#on
 	 */
 	on( event ) {
 		// Execute parent class method first.
@@ -85,6 +86,8 @@ extend( ProxyEmitter.prototype, EmitterMixin, {
 	 * @param {Function} callback The function to stop being called.
 	 * @param {Object} [ctx] The context object to be removed, pared with the given callback. To handle cases where
 	 * the same callback is used several times with different contexts.
+	 *
+	 * @method core.ui.ProxyEmitter#off
 	 */
 	off( event ) {
 		// Execute parent class method first.
@@ -106,6 +109,8 @@ extend( ProxyEmitter.prototype, EmitterMixin, {
 	 * Note: A native DOM Event is passed as an argument.
 	 *
 	 * @param {String} event
+	 *
+	 * @method core.ui.ProxyEmitter#_createDomListener
 	 * @returns {Function} The DOM listener callback.
 	 */
 	_createDomListener( event ) {
@@ -129,38 +134,36 @@ extend( ProxyEmitter.prototype, EmitterMixin, {
  * Mixin that injects the DOM events API into its host. It provides the API
  * compatible with {@link EmitterMixin}.
  *
- *                               listenTo( click, ... )
- *                 +-----------------------------------------+
- *                 |              stopListening( ... )       |
- *  +----------------------------+                           |             addEventListener( click, ... )
- *  | Host                       |                           |   +---------------------------------------------+
- *  +----------------------------+                           |   |       removeEventListener( click, ... )     |
- *  | _listeningTo: {            |                +----------v-------------+                                   |
- *  |   UID: {                   |                | ProxyEmitter           |                                   |
- *  |     emitter: ProxyEmitter, |                +------------------------+                      +------------v----------+
- *  |     callbacks: {           |                | events: {              |                      | Node (HTMLElement)    |
- *  |       click: [ callbacks ] |                |   click: [ callbacks ] |                      +-----------------------+
- *  |     }                      |                | },                     |                      | data-cke-expando: UID |
- *  |   }                        |                | _domNode: Node,        |                      +-----------------------+
- *  | }                          |                | _domListeners: {},     |                                   |
- *  | +------------------------+ |                | _emitterId: UID        |                                   |
- *  | | DOMEmitterMixin        | |                +--------------^---------+                                   |
- *  | +------------------------+ |                           |   |                                             |
- *  +--------------^-------------+                           |   +---------------------------------------------+
- *                 |                                         |                  click (DOM Event)
- *                 +-----------------------------------------+
- *                             fire( click, DOM Event )
+ *                                  listenTo( click, ... )
+ *                    +-----------------------------------------+
+ *                    |              stopListening( ... )       |
+ *     +----------------------------+                           |             addEventListener( click, ... )
+ *     | Host                       |                           |   +---------------------------------------------+
+ *     +----------------------------+                           |   |       removeEventListener( click, ... )     |
+ *     | _listeningTo: {            |                +----------v-------------+                                   |
+ *     |   UID: {                   |                | ProxyEmitter           |                                   |
+ *     |     emitter: ProxyEmitter, |                +------------------------+                      +------------v----------+
+ *     |     callbacks: {           |                | events: {              |                      | Node (HTMLElement)    |
+ *     |       click: [ callbacks ] |                |   click: [ callbacks ] |                      +-----------------------+
+ *     |     }                      |                | },                     |                      | data-cke-expando: UID |
+ *     |   }                        |                | _domNode: Node,        |                      +-----------------------+
+ *     | }                          |                | _domListeners: {},     |                                   |
+ *     | +------------------------+ |                | _emitterId: UID        |                                   |
+ *     | | DOMEmitterMixin        | |                +--------------^---------+                                   |
+ *     | +------------------------+ |                           |   |                                             |
+ *     +--------------^-------------+                           |   +---------------------------------------------+
+ *                    |                                         |                  click (DOM Event)
+ *                    +-----------------------------------------+
+ *                                fire( click, DOM Event )
  *
- * @singleton
- * @class DOMEmitterMixin
- * @mixins EmitterMixin
- * @implements DOMEmitter
+ * @mixin core.ui.DOMEmitterMixin
+ * @mixes core.EmitterMixin
+ * @implements core.ui.DOMEmitter
  */
-
 const DOMEmitterMixin = extend( {}, EmitterMixin, {
 	/**
 	 * Registers a callback function to be executed when an event is fired in a specific Emitter or DOM Node.
-	 * It is backwards compatible with {@link EmitterMixin#listenTo}.
+	 * It is backwards compatible with {@link core.EmitterMixin#listenTo}.
 	 *
 	 * @param {Emitter|Node} emitter The object that fires the event.
 	 * @param {String} event The name of the event.
@@ -168,6 +171,8 @@ const DOMEmitterMixin = extend( {}, EmitterMixin, {
 	 * @param {Object} [ctx] The object that represents `this` in the callback. Defaults to `emitter`.
 	 * @param {Number} [priority=10] The priority of this callback in relation to other callbacks to that same event.
 	 * Lower values are called first.
+	 *
+	 * @method core.ui.DOMEmitterMixin#listenTo
 	 */
 	listenTo() {
 		const args = Array.prototype.slice.call( arguments );
@@ -197,6 +202,8 @@ const DOMEmitterMixin = extend( {}, EmitterMixin, {
 	 * for all events from `emitter`.
 	 * @param {Function} [callback] (Requires the `event`) The function to be removed from the call list for the given
 	 * `event`.
+	 *
+	 * @method core.ui.DOMEmitterMixin#stopListening
 	 */
 	stopListening() {
 		const args = Array.prototype.slice.call( arguments );
@@ -224,6 +231,7 @@ const DOMEmitterMixin = extend( {}, EmitterMixin, {
 	 * Retrieves ProxyEmitter instance for given DOM Node residing in this Host.
 	 *
 	 * @param {Node} node DOM Node of the ProxyEmitter.
+	 * @method core.ui.DOMEmitterMixin#_getProxyEmitter
 	 * @return {ProxyEmitter} ProxyEmitter instance or null.
 	 */
 	_getProxyEmitter( node ) {

+ 2 - 4
packages/ckeditor5-engine/src/ui/model.js

@@ -12,17 +12,15 @@ import ObservableMixin from '../observablemixin.js';
 /**
  * The base MVC model class.
  *
- * @class core.ui.Model
- * @mixins core.ObservableMixin
+ * @memberOf core.ui
+ * @mixes core.ObservableMixin
  */
-
 export default class Model {
 	/**
 	 * Creates a new Model instance.
 	 *
 	 * @param {Object} [attributes] The model state attributes to be defined during the instance creation.
 	 * @param {Object} [properties] The (out of state) properties to be appended to the instance during creation.
-	 * @method constructor
 	 */
 	constructor( attributes, properties ) {
 		// Extend this instance with the additional (out of state) properties.

+ 4 - 7
packages/ckeditor5-engine/src/ui/region.js

@@ -10,36 +10,33 @@ import Collection from '../collection.js';
 /**
  * Basic Region class.
  *
- * @class Region
- * @extends Model
+ * @memberOf core.ui
  */
-
 export default class Region {
 	/**
 	 * Creates an instance of the {@link Region} class.
 	 *
 	 * @param {String} name The name of the Region.
-	 * @constructor
 	 */
 	constructor( name ) {
 		/**
 		 * The name of the region.
 		 *
-		 * @type {String}
+		 * @member {String} core.ui.Region#name
 		 */
 		this.name = name;
 
 		/**
 		 * Views which belong to the region.
 		 *
-		 * @type {Collection}
+		 * @member {Collection} core.ui.Region#views
 		 */
 		this.views = new Collection();
 
 		/**
 		 * Element of this region (see {@link #init}).
 		 *
-		 * @type {HTMLElement}
+		 * @member {HTMLElement} core.ui.Region#element
 		 */
 		this.element = null;
 	}

+ 20 - 21
packages/ckeditor5-engine/src/ui/template.js

@@ -12,29 +12,27 @@ import CKEditorError from '../ckeditorerror.js';
 /**
  * Basic Template class.
  *
- * @class Template
+ * @memberOf core.ui
  */
-
 export default class Template {
 	/**
 	 * Creates an instance of the {@link Template} class.
 	 *
-	 * @param {TemplateDefinition} definition The definition of the template.
-	 * @constructor
+	 * @param {core.ui.TemplateDefinition} def The definition of the template.
 	 */
 	constructor( def ) {
 		/**
 		 * Definition of this template.
 		 *
-		 * @type {TemplateDefinition}
+		 * @type {core.ui.TemplateDefinition}
 		 */
 		this.definition = def;
 	}
 
 	/**
-	 * Renders DOM Node using {@link #definition}.
+	 * Renders DOM Node using {@link core.ui.Template#definition}.
 	 *
-	 * See: {@link #apply}.
+	 * @see core.ui.Template#apply
 	 *
 	 * @returns {HTMLElement}
 	 */
@@ -43,11 +41,12 @@ export default class Template {
 	}
 
 	/**
-	 * Applies template {@link #def} to existing DOM tree.
+	 * Applies template {@link core.ui.Template#def} to existing DOM tree.
 	 *
 	 * **Note:** No new DOM nodes (elements, text nodes) will be created.
 	 *
-	 * See: {@link #render}, {@link View#applyTemplateToElement}.
+	 * @see core.ui.Template#render
+	 * @see View#applyTemplateToElement.
 	 *
 	 * @param {Node} element Root element for template to apply.
 	 */
@@ -68,7 +67,7 @@ export default class Template {
 	 * Renders a DOM Node from definition.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Definition of a Node.
+	 * @param {core.ui.TemplateDefinition} def Definition of a Node.
 	 * @param {Node} applyNode If specified, template `def` will be applied to existing DOM Node.
 	 * @param {Boolean} intoFragment If set, children are rendered into DocumentFragment.
 	 * @returns {HTMLElement} A rendered Node.
@@ -103,7 +102,7 @@ export default class Template {
 	 * Renders an HTMLElement from TemplateDefinition.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Definition of an element.
+	 * @param {core.ui.TemplateDefinition} def Definition of an element.
 	 * @param {HTMLElement} applyElement If specified, template `def` will be applied to existing HTMLElement.
 	 * @param {Boolean} intoFragment If set, children are rendered into DocumentFragment.
 	 * @returns {HTMLElement} A rendered element.
@@ -166,7 +165,7 @@ export default class Template {
 	 * Renders element attributes from definition.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Definition of an element.
+	 * @param {core.ui.TemplateDefinition} def Definition of an element.
 	 * @param {HTMLElement} el Element which is rendered.
 	 */
 	_renderElementAttributes( def, el ) {
@@ -209,10 +208,10 @@ export default class Template {
 
 	/**
 	 * Recursively renders element children from definition by
-	 * calling {@link #_renderElement}.
+	 * calling {@link core.ui.Template#_renderElement}.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Definition of an element.
+	 * @param {core.ui.TemplateDefinition} def Definition of an element.
 	 * @param {HTMLElement} el Element which is rendered.
 	 * @param {Boolean} isApply Traverse existing DOM structure only, don't modify DOM.
 	 */
@@ -232,7 +231,7 @@ export default class Template {
 	 * Activates element `on` listeners passed in element definition.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Definition of an element.
+	 * @param {core.ui.TemplateDefinition} def Definition of an element.
 	 * @param {HTMLElement} el Element which is rendered.
 	 */
 	_activateElementListenerAttachers( def, el ) {
@@ -262,7 +261,7 @@ export default class Template {
 /**
  * Returns an object consisting of `set` and `remove` functions, which
  * can be used in the context of DOM Node to set or reset `textContent`.
- * See {@link View#_getModelBinder}.
+ * @see core.ui.View#_getModelBinder
  *
  * @private
  * @param {Node} node DOM Node to be modified.
@@ -283,7 +282,7 @@ function getTextNodeUpdater( node ) {
 /**
  * Returns an object consisting of `set` and `remove` functions, which
  * can be used in the context of DOM Node to set or reset an attribute.
- * See {@link View#_getModelBinder}.
+ * @see core.ui.View#_getModelBinder
  *
  * @private
  * @param {Node} node DOM Node to be modified.
@@ -304,7 +303,7 @@ function getElementAttributeUpdater( el, attrName ) {
 
 /**
  * Definition of {@link Template}.
- * See: {@link TemplateValueSchema}.
+ * See: {@link core.ui.TemplateValueSchema}.
  *
  *		{
  *			tag: 'p',
@@ -336,7 +335,7 @@ function getElementAttributeUpdater( el, attrName ) {
  *			}
  *		}
  *
- * @typedef TemplateDefinition
+ * @typedef core.ui.TemplateDefinition
  * @type Object
  * @property {String} tag
  * @property {Array} [children]
@@ -348,7 +347,7 @@ function getElementAttributeUpdater( el, attrName ) {
 
 /**
  * Describes a value of HTMLElement attribute or `textContent`.
- * See: {@link TemplateDefinition}.
+ * See: {@link core.ui.TemplateDefinition}.
  *
  *		{
  *			tag: 'p',
@@ -364,6 +363,6 @@ function getElementAttributeUpdater( el, attrName ) {
  *			}
  *		}
  *
- * @typedef TemplateValueSchema
+ * @typedef core.ui.TemplateValueSchema
  * @type {Object|String|Array}
  */

+ 35 - 40
packages/ckeditor5-engine/src/ui/view.js

@@ -19,27 +19,25 @@ const bindIfSymbol = Symbol( 'bind-if' );
 /**
  * Basic View class.
  *
- * @class core.ui.View
- * @mixins DOMEmitterMixin
+ * @memberOf core.ui
+ * @mixes DOMEmitterMixin
  */
-
 export default class View {
 	/**
 	 * Creates an instance of the {@link View} class.
 	 *
-	 * @param {Model} model (View)Model of this View.
-	 * @constructor
+	 * @param {core.ui.Model} model (View)Model of this View.
 	 */
 	constructor( model ) {
 		/**
 		 * Model of this view.
 		 *
-		 * @type {Model}
+		 * @type {core.ui.Model}
 		 */
 		this.model = model || null;
 
 		/**
-		 * Regions of this view. See {@link #register}.
+		 * Regions of this view. See {@link core.ui.View#register}.
 		 *
 		 * @type {Collection}
 		 */
@@ -55,7 +53,7 @@ export default class View {
 		this.template = null;
 
 		/**
-		 * Region selectors of this view. See {@link #register}.
+		 * Region selectors of this view. See {@link core.ui.View#register}.
 		 *
 		 * @private
 		 * @type {Object}
@@ -71,7 +69,7 @@ export default class View {
 		this._element = null;
 
 		/**
-		 * An instance of Template to generate {@link #_el}.
+		 * An instance of Template to generate {@link core.ui.View#_el}.
 		 *
 		 * @private
 		 * @type {Template}
@@ -81,9 +79,7 @@ export default class View {
 
 	/**
 	 * Element of this view. The element is rendered on first reference
-	 * using {@link #template} definition and {@link #_template} object.
-	 *
-	 * @property element
+	 * using {@link core.ui.View#template} definition and {@link core.ui.View#_template} object.
 	 */
 	get element() {
 		if ( this._element ) {
@@ -121,7 +117,6 @@ export default class View {
 	 * is synchronized with {@link View#model}.
 	 *
 	 * @readonly
-	 * @property attributeBinder
 	 */
 	get attributeBinder() {
 		if ( this._attributeBinder ) {
@@ -149,7 +144,7 @@ export default class View {
 			 * @property {attributeBinder.to}
 			 * @param {String} attribute Name of {@link View#model} used in the binding.
 			 * @param {Function} [callback] Allows processing of the value. Accepts `Node` and `value` as arguments.
-			 * @return {ViewModelBinding}
+			 * @return {core.ui.ViewModelBinding}
 			 */
 			to( attribute, callback ) {
 				return {
@@ -186,7 +181,7 @@ export default class View {
 			 * @param {String} attribute Name of {@link View#model} used in the binding.
 			 * @param {String} [valueIfTrue] Value set when {@link View#model} attribute is not undefined/null/false/''.
 			 * @param {Function} [callback] Allows processing of the value. Accepts `Node` and `value` as arguments.
-			 * @return {ViewModelBinding}
+			 * @return {core.ui.ViewModelBinding}
 			 */
 			if( attribute, valueIfTrue, callback ) {
 				return {
@@ -210,7 +205,7 @@ export default class View {
 	}
 
 	/**
-	 * Registers a region in {@link #regions}.
+	 * Registers a region in {@link core.ui.View#regions}.
 	 *
 	 *		let view = new View();
 	 *
@@ -229,7 +224,7 @@ export default class View {
 	 * @param {String|Region} stringOrRegion The name or an instance of the Region
 	 * to be registered. If `String`, the region will be created on the fly.
 	 * @param {String|Function|true} regionSelector The selector to retrieve region's element
-	 * in DOM when the region instance is initialized (see {@link Region#init}, {@link #init}).
+	 * in DOM when the region instance is initialized (see {@link Region#init}, {@link core.ui.View#init}).
 	 * @param {Boolean} [override] When set `true` it will allow overriding of registered regions.
 	 */
 	register( ...args ) {
@@ -308,7 +303,7 @@ export default class View {
 	 * See: {@link Template#apply}.
 	 *
 	 * @param {DOMElement} element DOM Element to initialize.
-	 * @param {TemplateDefinition} def Template definition to be applied.
+	 * @param {core.ui.TemplateDefinition} def Template definition to be applied.
 	 */
 	applyTemplateToElement( element, def ) {
 		// Prepare pre–defined listeners.
@@ -323,8 +318,8 @@ export default class View {
 	/**
 	 * Destroys the view instance. The process includes:
 	 *
-	 * 1. Removal of child views from {@link #regions}.
-	 * 2. Destruction of the {@link #regions}.
+	 * 1. Removal of child views from {@link core.ui.View#regions}.
+	 * 2. Destruction of the {@link core.ui.View#regions}.
 	 * 3. Removal of {#link #_el} from DOM.
 	 */
 	destroy() {
@@ -348,8 +343,8 @@ export default class View {
 	}
 
 	/**
-	 * Initializes {@link #regions} of this view by passing a DOM element
-	 * generated from {@link #_regionsSelectors} into {@link Region#init}.
+	 * Initializes {@link core.ui.View#regions} of this view by passing a DOM element
+	 * generated from {@link core.ui.View#_regionsSelectors} into {@link Region#init}.
 	 *
 	 * @protected
 	 */
@@ -423,22 +418,22 @@ export default class View {
 	}
 
 	/**
-	 * For given {@link TemplateValueSchema} found by (@link _extendTemplateWithModelBinders} containing
-	 * {@link ViewModelBinding} it returns a function, which when called by {@link Template#render}
+	 * For given {@link core.ui.TemplateValueSchema} found by (@link _extendTemplateWithModelBinders} containing
+	 * {@link core.ui.ViewModelBinding} it returns a function, which when called by {@link Template#render}
 	 * or {@link Template#apply} activates the binding and sets its initial value.
 	 *
-	 * Note: {@link TemplateValueSchema} can be for HTMLElement attributes or Text Node `textContent`.
+	 * Note: {@link core.ui.TemplateValueSchema} can be for HTMLElement attributes or Text Node `textContent`.
 	 *
 	 * @protected
-	 * @param {TemplateValueSchema}
+	 * @param {core.ui.TemplateValueSchema}
 	 * @return {Function}
 	 */
 	_getModelBinder( valueSchema ) {
 		valueSchema = normalizeBinderValueSchema( valueSchema );
 
 		/**
-		 * Assembles the value using {@link TemplateValueSchema} and stores it in a form of
-		 * an Array. Each entry of an Array corresponds to one of {@link TemplateValueSchema}
+		 * Assembles the value using {@link core.ui.TemplateValueSchema} and stores it in a form of
+		 * an Array. Each entry of an Array corresponds to one of {@link core.ui.TemplateValueSchema}
 		 * items.
 		 *
 		 * @private
@@ -467,7 +462,7 @@ export default class View {
 
 		/**
 		 * Attaches a listener to {@link View#model}, which updates DOM with a value constructed from
-		 * {@link TemplateValueSchema} when {@link View#model} attribute value changes.
+		 * {@link core.ui.TemplateValueSchema} when {@link View#model} attribute value changes.
 		 *
 		 * This function is called by {@link Template#render} or {@link Template#apply}.
 		 *
@@ -515,12 +510,12 @@ export default class View {
 
 	/**
 	 * Iterates over "attributes" and "text" properties in {@link TemplateDefinition} and
-	 * locates existing {@link ViewModelBinding} created by {@link #attributeBinder}.
+	 * locates existing {@link core.ui.ViewModelBinding} created by {@link core.ui.View#attributeBinder}.
 	 * Then, for each such a binding, it creates corresponding entry in {@link Template#_modelBinders},
 	 * which can be then activated by {@link Template#render} or {@link Template#apply}.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition}
+	 * @param {core.ui.TemplateDefinition} def
 	 */
 	_extendTemplateWithModelBinders( def ) {
 		const attributes = def.attributes;
@@ -566,7 +561,7 @@ export default class View {
 	 * of an element, attaches native DOM listener to that element.
 	 *
 	 * @protected
-	 * @param {TemplateDefinition} def Template definition.
+	 * @param {core.ui.TemplateDefinition} def Template definition.
 	 */
 	_extendTemplateWithListenerAttachers( def ) {
 		const on = def.on;
@@ -638,7 +633,7 @@ function isValidRegionSelector( selector ) {
 }
 
 /**
- * Normalizes given {@link TemplateValueSchema} it's always in an Array–like format:
+ * Normalizes given {@link core.ui.TemplateValueSchema} it's always in an Array–like format:
  *
  * 		{ attributeName/text: 'bar' } ->
  * 			{ attributeName/text: [ 'bar' ] }
@@ -649,7 +644,7 @@ function isValidRegionSelector( selector ) {
  * 		{ attributeName/text: [ 'bar', { model: ..., modelAttributeName: ... }, 'baz' ] }
  *
  * @private
- * @param {TemplateValueSchema} valueSchema
+ * @param {core.ui.TemplateValueSchema} valueSchema
  * @returns {Array}
  */
 function normalizeBinderValueSchema( valueSchema ) {
@@ -657,11 +652,11 @@ function normalizeBinderValueSchema( valueSchema ) {
 }
 
 /**
- * Checks whether given {@link TemplateValueSchema} contains a
- * {@link ViewModelBinding}.
+ * Checks whether given {@link core.ui.TemplateValueSchema} contains a
+ * {@link core.ui.ViewModelBinding}.
  *
  * @private
- * @param {TemplateValueSchema} valueSchema
+ * @param {core.ui.TemplateValueSchema} valueSchema
  * @returns {Boolean}
  */
 function hasModelBinding( valueSchema ) {
@@ -690,11 +685,11 @@ function binderValueReducer( prev, cur ) {
 /**
  * Describes Model binding created by {@link View#attributeBinder}.
  *
- * @typedef ViewModelBinding
+ * @typedef core.ui.ViewModelBinding
  * @type Object
  * @property {Symbol} type
- * @property {Model} model
+ * @property {core.ui.Model} model
  * @property {String} attribute
  * @property {String} [valueIfTrue]
- * @property {Funcion} [callback]
+ * @property {Function} [callback]
  */