|
|
@@ -30,6 +30,7 @@ import EmitterMixin from '../utils/emittermixin.js';
|
|
|
* observers.
|
|
|
*
|
|
|
* Note that the following observers are attached by the controller and are always available:
|
|
|
+ *
|
|
|
* * {@link view.observer.MutationObserver},
|
|
|
* * {@link view.observer.SelectionObserver},
|
|
|
* * {@link view.observer.FocusObserver},
|
|
|
@@ -45,15 +46,6 @@ export default class EditingController {
|
|
|
*/
|
|
|
constructor( model ) {
|
|
|
/**
|
|
|
- * Property keeping all listenters attached by controller on other objects, so it can
|
|
|
- * stop listening on {@link engine.EditingController#destroy}.
|
|
|
- *
|
|
|
- * @private
|
|
|
- * @member {utils.EmitterMixin} engine.EditingController#_listenter
|
|
|
- */
|
|
|
- this._listenter = Object.create( EmitterMixin );
|
|
|
-
|
|
|
- /**
|
|
|
* Model document.
|
|
|
*
|
|
|
* @readonly
|
|
|
@@ -76,16 +68,13 @@ export default class EditingController {
|
|
|
this.view.addObserver( KeyObserver );
|
|
|
|
|
|
/**
|
|
|
- * Mapper which describe model-view binding.
|
|
|
+ * Mapper which describes model-view binding.
|
|
|
*
|
|
|
* @readonly
|
|
|
* @member {engine.conversion.Mapper} engine.EditingController#mapper
|
|
|
*/
|
|
|
this.mapper = new Mapper();
|
|
|
|
|
|
- // Convert view selection to model.
|
|
|
- this._listenter.listenTo( this.view, 'selectionChange', convertSelectionChange( model, this.mapper ) );
|
|
|
-
|
|
|
/**
|
|
|
* Model to view conversion dispatcher, which converts changes from the model to
|
|
|
* {@link engine.EditingController#view editing view}.
|
|
|
@@ -107,6 +96,18 @@ export default class EditingController {
|
|
|
viewSelection: this.view.selection
|
|
|
} );
|
|
|
|
|
|
+ /**
|
|
|
+ * Property keeping all listenters attached by controller on other objects, so it can
|
|
|
+ * stop listening on {@link engine.EditingController#destroy}.
|
|
|
+ *
|
|
|
+ * @private
|
|
|
+ * @member {utils.EmitterMixin} engine.EditingController#_listenter
|
|
|
+ */
|
|
|
+ this._listenter = Object.create( EmitterMixin );
|
|
|
+
|
|
|
+ // Convert view selection to model.
|
|
|
+ this._listenter.listenTo( this.view, 'selectionChange', convertSelectionChange( model, this.mapper ) );
|
|
|
+
|
|
|
this._listenter.listenTo( this.model, 'change', ( evt, type, changes ) => {
|
|
|
this.modelToView.convertChange( type, changes );
|
|
|
} );
|